package com.ybkj.daijia.server.service;

import com.ybkj.daijia.server.mc.Passenger;
import com.ybkj.daijia.server.model.Company;
import com.ybkj.daijia.server.model.Driver;
import com.ybkj.daijia.server.model.FeeScale;
import com.ybkj.daijia.server.model.PeccancyAndComplain;
import com.ybkj.daijia.server.model.SettleAccountsCycle;
import com.ybkj.daijia.server.model.Train;
import com.ybkj.daijia.server.sp.CkbaMessage;
import com.ybkj.daijia.server.sp.CkpjMessage;
import com.ybkj.daijia.server.sp.ClbxMessage;
import com.ybkj.daijia.server.sp.ShenZhenTimer;
import com.ybkj.daijia.server.zhuan.Car;
import com.ybkj.daijia.server.zhuan.Order;

/**
 * @author tanglei 2017/07/17.
 */

public interface SuperviceService {

    /**
     * 订单撤销.
     */
    public void pushDdcx(Order order, String cancelCause, String who);

    /**
     * 订单接收.
     */
    public void pushDdjs(Order order);

    /**
     * 订单派单.
     */
    public void pushDdpd(Order order, Driver driver);

    /**
     * 单次运营.
     *
     * @param driver
     * @param passenger
     */
    public void pushDcyy(Order order, Passenger passenger, Driver driver);

    /**
     * 统计运营
     *
     * @param driver
     */
    public void pushTjyy(Driver driver);


    /**
     * 公司基本信息（平台、服务机构、运营规模、经营许可）
     *
     * @param company
     * @param basePath
     */
    public void JgxxMessage(Company company, String basePath);

    /**
     * 司机备案（驾驶员基本信息。驾驶员移动终端信息）
     *
     * @param driver
     * @param basePath
     */
    public void SjbaMessage(Driver driver, String basePath);

    /**
     * 司机培训信息
     *
     * @param train
     */
    public void SjpxMessage(Train train);

    /**
     * 司机信誉信息(信誉信息、统计信息)
     *
     * @param driver
     */
    public void SjxxMessage(PeccancyAndComplain peccancyAndComplain);

    /**
     * 司机端GPS信息(驾驶员定位信息、车辆定位信息)
     *
     * @param driver
     */
    void SjwzMessage(Driver driver);

    /**
     * 订单发票状态
     *
     * @param order
     */
    public void FpztMessage(Order order);

    /**
     * 驾驶员处罚信息
     *
     * @param peccancyAndComplain
     */
    public void CfxxMessage(PeccancyAndComplain peccancyAndComplain);

    /**
     * 乘客投诉
     *
     * @param peccancyAndComplain
     */
    public void CkpjMessage(PeccancyAndComplain peccancyAndComplain);

    /**
     * 结算周期
     *
     * @param sac
     */
    public void Jszq(SettleAccountsCycle sac);

    /**
     * 车辆保险
     */
    public void ClbxMessage(ClbxMessage clbxMessage);


    /**
     * 车辆备案
     */
    public void ClbaMessage(Car car, String basePath);


    /**
     * 乘客评价
     */
    public void CkpjMessage(CkpjMessage ckpjMessage);

    /**
     * 乘客备案
     *
     * @param passenger
     */
    public void CkbaMessage(CkbaMessage ckbaMessage, Passenger passenger);


    /**
     * 运价信息
     */
    public void YjxxMessage(FeeScale feeScale);

    /**
     * 定时上传深圳监管平台日期信息
     */
    public void shenzhenTimer(ShenZhenTimer shenzhenTimer);

    /**
     * 乘客黑名单
     *
     * @param passenger
     * @param string
     */
    public void CkblMessage(Passenger passenger, String string);

    /**
     * 订单补传
     *
     * @param order
     */
    public void ddbc(Order order);

    /**
     * 保持vpn活性
     *
     * @param order
     */
    public void vpnLive(Company company);

}
